package com.wc.alorithm_blue_bridge._数学知识.约数.质因数个数;

import java.util.Scanner;

/**
 * @Author congge
 * @Date 2024/3/13 21:11
 * @description https://www.lanqiao.cn/problems/2155/learning/?page=1&first_category_id=1
 */
public class Main {
    static int N = (int) 1e8 + 15;
    static boolean[] isNotPrime = new boolean[N];
    static int[] primes = new int[N / 10];
    static int idx = 0;

    static void ola() {
        isNotPrime[0] = isNotPrime[1] = true;
        for (int i = 2; i < N; i++) {
            if (!isNotPrime[i]) primes[++idx] = i;

            for (int j = 1; primes[j] * i < N; j++) {
                isNotPrime[primes[j] * i] = true;
                if (primes[j] % i == 0) break;
            }
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();
        ola();
        int res = 0;
        for (int i = 1; (long)primes[i] * primes[i] <= n; i++) {
            if (n % primes[i] == 0) {
                res++;
                while (n % primes[i] == 0) {
                    n /= primes[i];
                }
            }
        }
        if (n > 1) res++;
        System.out.println(res);
    }
}